This invention generally relates to binary codes which are optically readable by a machine and which can be applied on parts or items for the purpose of part identification. More specifically, the present invention relates to machine-readable binary codes consisting of a two-dimensional matrix or array of data cells.
It is desirable to place permanent identifica-tion marks (e.g., a serial number) on parts to track parts, verify proper assembly, maintain inventories, etc. Typically such identification marks take the form of a string of characters (e.g., numbers, letters and special symbols). It is desirable for the marks (placed on the object) to be “human-readable”, i.e., that a human operator be able to determine, i.e., recognize, the string of characters without special equipment. Unfortunately, computer systems exhibit poor performance when forced to use the human-readable symbols. High-accuracy reading can be achieved by machine, but the symbols required by the machine system are mostly or totally non-readable by human readers. A compromise uses special fonts such as OCR-A or OCR-B to improve computer recognizability while allowing human readability. The OCR fonts can be easily damaged on the marked surface, leading to errors.
The surface on which part markings are applied can be a paper tag, a plastic bottle, a metal part, etc. Common methods are to print solid characters with ink, paints or dyes, form depressed characters using stamps, etch grooves (or cast raised ribs of material) or font characters from a matrix of dots (or bumps) as in a dot matrix printer. The characters are read optically (by either human or machine) by forming an image of the character string with sufficient contrast to read the character(s) against the background surface. Computer recognition occurs by optically imaging the character strings, digitizing the image and then using optical character recognition software to recognize the character(s) that are present. The overall recognition process has an error rate of 1-2% under the best conditions and often exceeds 10-15% errors.
Computer-based systems (when not required to be human-readable) encode the string of characters into a geometric pattern such as a pattern of vertical bars of varying width and spacing (a one-dimensional code “bar code”) to provide higher accuracy (error rates less than 0.1 to 0.01%). One-dimensional bar codes can be read with a fairly high degree of latitude but are not error correcting. At least one intact scan (or horizontal slice) through the entire length of the pattern must be provided.
Newer patterns (such as a “Snowflake” pattern by Electronic Automation Limited of the type disclosed in U.S. Pat. No. 5,825,015) create a two-dimensional pattern of dots that are capable of encoding an entire character string with error detecting and correcting abilities. For example, 40-50% of the pattern can be obliterated or obscured and sufficient information remains to reconstruct the original encoded character string. Also, the density is high, in that strings of 20 to 30 characters can be embedded in a two-dimensional array of dots of perhaps 10 rows and 10 columns. The markings produced by this approach, unfortunately, cannot be read by a human operator. The encoded alphanumeric string can sometimes be printed below the two-dimensional pattern for human reference, but cannot be relied upon for long-term survival.
Thus there is a need for a part marking technique whereby an encoded pattern of dots is simultaneously readable by a human and by a computer system.